package etf.pia.entity;
// Generated Feb 13, 2014 1:21:45 AM by Hibernate Tools 3.6.0


import java.util.HashSet;
import java.util.Set;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import static javax.persistence.GenerationType.IDENTITY;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.UniqueConstraint;

/**
 * Predmet generated by hbm2java
 */
@Entity
@Table(name="predmet"
    ,catalog="pia"
    , uniqueConstraints = @UniqueConstraint(columnNames="naziv") 
)
public class Predmet  implements java.io.Serializable {


     private Integer idPredmet;
     private Katedra katedra;
     private String naziv;
     private String sifra;
     private int semestar;
     private String informacije;
     private String tip;
     private byte espb;
     private String fondCasova;
     private Boolean lab;
     private String propozicije;
     private String cilj;
     private Integer brojGrupa;
     private Set<PlanAngazovanja> planAngazovanjas = new HashSet<PlanAngazovanja>(0);
     private Set<Domaci> domacis = new HashSet<Domaci>(0);
     private Set<Obavestenja> obavestenjas = new HashSet<Obavestenja>(0);
     private Set<Rokovi> rokovis = new HashSet<Rokovi>(0);
     private Set<Raspored> rasporeds = new HashSet<Raspored>(0);
     private Set<Fajlovi> fajlovis = new HashSet<Fajlovi>(0);
     private Set<LabVezbe> labVezbes = new HashSet<LabVezbe>(0);
     private Set<Spiskovi> spiskovis = new HashSet<Spiskovi>(0);

    public Predmet() {
    }

	
    public Predmet(Katedra katedra, String naziv, String sifra, int semestar, String informacije, String tip, byte espb) {
        this.katedra = katedra;
        this.naziv = naziv;
        this.sifra = sifra;
        this.semestar = semestar;
        this.informacije = informacije;
        this.tip = tip;
        this.espb = espb;
    }
    public Predmet(Katedra katedra, String naziv, String sifra, int semestar, String informacije, String tip, byte espb, String fondCasova, Boolean lab, String propozicije, String cilj, Integer brojGrupa, Set<PlanAngazovanja> planAngazovanjas, Set<Domaci> domacis, Set<Obavestenja> obavestenjas, Set<Rokovi> rokovis, Set<Raspored> rasporeds, Set<Fajlovi> fajlovis, Set<LabVezbe> labVezbes, Set<Spiskovi> spiskovis) {
       this.katedra = katedra;
       this.naziv = naziv;
       this.sifra = sifra;
       this.semestar = semestar;
       this.informacije = informacije;
       this.tip = tip;
       this.espb = espb;
       this.fondCasova = fondCasova;
       this.lab = lab;
       this.propozicije = propozicije;
       this.cilj = cilj;
       this.brojGrupa = brojGrupa;
       this.planAngazovanjas = planAngazovanjas;
       this.domacis = domacis;
       this.obavestenjas = obavestenjas;
       this.rokovis = rokovis;
       this.rasporeds = rasporeds;
       this.fajlovis = fajlovis;
       this.labVezbes = labVezbes;
       this.spiskovis = spiskovis;
    }
   
     @Id @GeneratedValue(strategy=IDENTITY)

    
    @Column(name="id_predmet", unique=true, nullable=false)
    public Integer getIdPredmet() {
        return this.idPredmet;
    }
    
    public void setIdPredmet(Integer idPredmet) {
        this.idPredmet = idPredmet;
    }

@ManyToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="katedra", nullable=false)
    public Katedra getKatedra() {
        return this.katedra;
    }
    
    public void setKatedra(Katedra katedra) {
        this.katedra = katedra;
    }

    
    @Column(name="naziv", unique=true, nullable=false, length=100)
    public String getNaziv() {
        return this.naziv;
    }
    
    public void setNaziv(String naziv) {
        this.naziv = naziv;
    }

    
    @Column(name="sifra", nullable=false, length=45)
    public String getSifra() {
        return this.sifra;
    }
    
    public void setSifra(String sifra) {
        this.sifra = sifra;
    }

    
    @Column(name="semestar", nullable=false)
    public int getSemestar() {
        return this.semestar;
    }
    
    public void setSemestar(int semestar) {
        this.semestar = semestar;
    }

    
    @Column(name="informacije", nullable=false, length=65535)
    public String getInformacije() {
        return this.informacije;
    }
    
    public void setInformacije(String informacije) {
        this.informacije = informacije;
    }

    
    @Column(name="tip", nullable=false, length=45)
    public String getTip() {
        return this.tip;
    }
    
    public void setTip(String tip) {
        this.tip = tip;
    }

    
    @Column(name="espb", nullable=false)
    public byte getEspb() {
        return this.espb;
    }
    
    public void setEspb(byte espb) {
        this.espb = espb;
    }

    
    @Column(name="fond_casova", length=45)
    public String getFondCasova() {
        return this.fondCasova;
    }
    
    public void setFondCasova(String fondCasova) {
        this.fondCasova = fondCasova;
    }

    
    @Column(name="lab")
    public Boolean getLab() {
        return this.lab;
    }
    
    public void setLab(Boolean lab) {
        this.lab = lab;
    }

    
    @Column(name="propozicije", length=65535)
    public String getPropozicije() {
        return this.propozicije;
    }
    
    public void setPropozicije(String propozicije) {
        this.propozicije = propozicije;
    }

    
    @Column(name="cilj", length=65535)
    public String getCilj() {
        return this.cilj;
    }
    
    public void setCilj(String cilj) {
        this.cilj = cilj;
    }

    
    @Column(name="broj_grupa")
    public Integer getBrojGrupa() {
        return this.brojGrupa;
    }
    
    public void setBrojGrupa(Integer brojGrupa) {
        this.brojGrupa = brojGrupa;
    }

@OneToMany(fetch=FetchType.LAZY, mappedBy="predmet")
    public Set<PlanAngazovanja> getPlanAngazovanjas() {
        return this.planAngazovanjas;
    }
    
    public void setPlanAngazovanjas(Set<PlanAngazovanja> planAngazovanjas) {
        this.planAngazovanjas = planAngazovanjas;
    }

@OneToMany(fetch=FetchType.LAZY, mappedBy="predmet")
    public Set<Domaci> getDomacis() {
        return this.domacis;
    }
    
    public void setDomacis(Set<Domaci> domacis) {
        this.domacis = domacis;
    }

@OneToMany(fetch=FetchType.LAZY, mappedBy="predmet")
    public Set<Obavestenja> getObavestenjas() {
        return this.obavestenjas;
    }
    
    public void setObavestenjas(Set<Obavestenja> obavestenjas) {
        this.obavestenjas = obavestenjas;
    }

@OneToMany(fetch=FetchType.LAZY, mappedBy="predmet")
    public Set<Rokovi> getRokovis() {
        return this.rokovis;
    }
    
    public void setRokovis(Set<Rokovi> rokovis) {
        this.rokovis = rokovis;
    }

@OneToMany(fetch=FetchType.LAZY, mappedBy="predmet")
    public Set<Raspored> getRasporeds() {
        return this.rasporeds;
    }
    
    public void setRasporeds(Set<Raspored> rasporeds) {
        this.rasporeds = rasporeds;
    }

@OneToMany(fetch=FetchType.LAZY, mappedBy="predmet")
    public Set<Fajlovi> getFajlovis() {
        return this.fajlovis;
    }
    
    public void setFajlovis(Set<Fajlovi> fajlovis) {
        this.fajlovis = fajlovis;
    }

@OneToMany(fetch=FetchType.LAZY, mappedBy="predmet")
    public Set<LabVezbe> getLabVezbes() {
        return this.labVezbes;
    }
    
    public void setLabVezbes(Set<LabVezbe> labVezbes) {
        this.labVezbes = labVezbes;
    }

@OneToMany(fetch=FetchType.LAZY, mappedBy="predmet")
    public Set<Spiskovi> getSpiskovis() {
        return this.spiskovis;
    }
    
    public void setSpiskovis(Set<Spiskovi> spiskovis) {
        this.spiskovis = spiskovis;
    }




}


